import java.sql.*;

public class DatabaseConnection {
    private static final String URL = "jdbc:mysql://localhost:3306/exam_system?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&autoReconnect=true&useUnicode=true";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "123456";

    // 移除单例连接，每次都创建新连接以避免数据缓存问题
    public static Connection getConnection() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);

            // 设置事务隔离级别为READ_COMMITTED，确保能读取到最新提交的数据
            conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);

            // 设置自动提交为true，确保每个操作立即生效
            conn.setAutoCommit(true);

            System.out.println("数据库连接已建立，事务隔离级别: " + conn.getTransactionIsolation());
            return conn;
        } catch (Exception e) {
            System.out.println("数据库连接失败: " + e.getMessage());
            e.printStackTrace();
        }
        return null;
    }

    public static void closeConnection(Connection conn) {
        try {
            if (conn != null && !conn.isClosed()) {
                conn.close();
                System.out.println("数据库连接已关闭");
            }
        } catch (SQLException e) {
            System.out.println("关闭数据库连接时发生错误: " + e.getMessage());
            e.printStackTrace();
        }
    }

    // 保留原有的closeConnection方法以保持兼容性
    public static void closeConnection() {
        // 这个方法现在不做任何事情，因为我们不再使用单例连接
        System.out.println("不再使用单例连接");
    }
}